Channel hopping scheme for update of data for multiple services across multiple digital broadcast channels

ABSTRACT

Data broadcast over different channels may be updated in a digital broadcast receiving device. The device may include a receiver unit, a processor, memory instructions embodied in the memory for execution on the processor. The instructions may be configured to implement the method for updating data broadcast over different channels. A first digital broadcast signal may be received over a first channel. The receiving device may be tuned to a second channel at a predetermined time to receive a second digital broadcast signal. Selected data may be extracted from the second digital broadcast signal and stored or utilized with the receiving device. An update schedule may be generated for data transmitted with a digital broadcast signal. A broadcast time for an update packet may be determined from a packet header. A schedule packet may be generated containing the broadcast time and broadcast before the update packet.

CLAIM OF PRIORITY

This application is a divisional application and claims the prioritybenefit of U.S. patent application Ser. No. 12/122,622 to Gary M.Zalewski, filed May 16, 2008 and entitled “CHANNEL HOPPING SCHEME FORUPDATE OF DATA FOR MULTIPLE SERVICES ACROSS MULTIPLE DIGITAL BROADCASTCHANNELS”, the entire contents of which are incorporated herein byreference.

FIELD OF THE INVENTION

Embodiments of this invention are related to digital broadcasting andmore specifically to updating data for services usable in conjunctionwith a digital broadcast signal.

BACKGROUND OF THE INVENTION

Introduced in the late 1990s, digital television (DTV) technologyappealed to the television broadcasting business and consumerelectronics industries as offering new consumer services and businessopportunities that were impractical with previous analog television.Digital television is more flexible and efficient than analogtelevision. When properly used by broadcasters, digital televisionallows higher-quality images and sound and more programming choices thananalog does. In DTV moving images and sound are sent and received bymeans of discrete (digital) signals, in contrast to the analog signalsused by analog television. Digital television includes, but is notlimited to Digital Terrestrial Television (DTTV or DTT), which is animplementation of digital technology to provide a greater number ofchannels and/or better quality of picture and sound using aerialbroadcasts to a conventional antenna (or aerial) as opposed to asatellite dish or cable connection.

The development of digital television has lead to many changes intelevision broadcasting and related industries. Many countries havemandated a change from an analog television signal format to a newdigital format. One example of such a digital television broadcaststandard was developed by the Advanced Television Systems Committee.With a conventional analog television broadcast, a video signalmodulates a carrier wave signal that is broadcast by a transmissiontower. A television set contains a receiver that detects broadcastsignals. The receiver includes a tuner that selects a particular channelaccording to its carrier frequency and a demodulator that extracts thevideo signal from the modulated carrier signal. With a digitaltelevision signal, the video signal is generated in a digital format oran analog video signal is converted to a digital format to produce adigital signal. The carrier wave is modulated according to the digitalsignal format, e.g., using vestigial sideband (VSB) modulation. This newformat allows data for additional digital services to be broadcast alongwith a regular television signal. Examples of such services may includereal time stock quotes, sports, weather and traffic updates and otherservices traditionally associated with delivery via two-way media, suchas the internet, digital wireless services or cellular telephoneservices.

The delivery of digital services by a primarily one-way medium throughdigital broadcast presents certain challenges and problems.Conventionally, a broadcast, digital or otherwise sends information on aschedule determined by the broadcaster. Digital services delivered bytwo-way media, by contrast, may be obtained more or less on demand.Updating information delivered by digital broadcast over multiplebroadcast channels presents certain problems heretofore unrecognized inthe art.

It is within this context that embodiments of the present inventionarise.

SUMMARY OF THE INVENTION

According to an embodiment of the present invention, a method forupdating data broadcast over different channels may be implemented in adigital broadcast receiving device configured to receive programming anddata over a plurality of broadcast channels. A first digital broadcastsignal may be received over a first digital broadcast channel. Thereceiving device may be tuned to a second digital broadcast channel at apredetermined time and a second digital broadcast signal may be receivedover the second digital broadcast channel. The second digital broadcastsignal includes data associated with one or more services resident onthe receiving device. Selected data associated with one or more of theservices may be extracted from the second digital broadcast signal andthe data may be stored or utilized with the receiving device.

In some embodiments the first digital broadcast signal may includetelevision programming mixed with overlaid data. The overlaid data maybe data associated with the first digital broadcast channel or anotherdigital broadcast channel.

In some embodiments, receiving the first digital broadcast signal mayinclude storing information derived from the first digital broadcastsignal in a buffer. Images derived from the information stored in thebuffer may be displayed while the second digital broadcast signal isreceived.

In some embodiments the receiving device may include a tuner. The firstdigital broadcast signal may be received by tuning the tuner to thefirst broadcast channel and the tuner may be tuned to the second digitalbroadcast channel at the predetermined time.

In some embodiments, missing data that was not received as part of anupdate may be identified and retrieved.

In some embodiments, a geographic location of the receiving device maybe determined. In such embodiments, tuning the receiver to the seconddigital broadcast channel at the predetermined time and receiving thesecond digital broadcast signal may include selecting the second digitalbroadcast channel based on the geographic location of the receivingdevice. The selected data may be extracted from the second digitalbroadcast signal based on the geographic location.

In accordance certain embodiments, the second digital broadcast channelmay be selected based on a schedule of update priority for the one ormore services resident on the receiving device.

In some embodiments the predetermined time may be determined from dataembedded in the first digital broadcast signal. For example, the dataembedded in the first digital broadcast signal may indicate a time of arelevant data gap in the first digital broadcast signal.

In some embodiments the receiving device may include a first tuner and asecond tuner. In such a case, the first tuner may be tuned to the firstdigital broadcast channel and the second tuner may be selectively tunedto the second digital broadcast channel at the predetermined time. Thesecond digital broadcast signal may be received with the first tuner andthe first digital broadcast signal may be received with the first tuner.

According to another embodiment of the invention, a digital broadcastreceiving device may include a receiver unit configured to receiveprogramming and data over a plurality of broadcast channels, a processorcoupled to the receiver unit; a memory coupled to the processor; and aset of processor readable instructions embodied in the memory forexecution on the processor. The instructions may be configured toimplement a method for updating data broadcast over different channelsincluding a) receiving a first digital broadcast signal over a firstdigital broadcast channel; b) receiving a second digital broadcastsignal over the second digital broadcast channel with the receiver at apredetermined time, wherein the second digital broadcast signal includesdata associated with one or more services resident on the receivingdevice; c) extracting data associated with one or more of the services;and d) storing the data in the memory or utilizing the data in programexecuted on the processor.

In some embodiments the receiver may include a single tuner. In otherembodiments, the receiver may include first and second tuners.

In some embodiments, the device may further comprise a geographicalpositioning system coupled to the processor.

According to another embodiment, an update schedule may be generated fordata transmitted with a digital broadcast signal. One or more input datastreams may be received. The input data streams contain data for one ormore digital broadcast data services. The data may be in the form of aplurality of packets. Each packet may have a header and a payload. Atime that an update packet containing data for one of the digitalbroadcast data services will be broadcast as part of a digital broadcastsignal may be determined from the headers. A schedule packet may begenerated containing the time that the update packet will be broadcastas part of the digital broadcast signal. The schedule packet may bebroadcast before broadcasting the update packet.

In some versions of this embodiment, the header may include informationidentifying a channel over which the packet associated with the headeris to be broadcast.

In some versions of this embodiment, the header may include informationidentifying a type of data in the payload.

In some versions of this embodiment, the header may include informationidentifying a size of the packet.

In some versions of this embodiment, the header may include informationidentifying a given packet as being associated with other packets in thedigital broadcast signal.

In some versions of this embodiment, the header may include informationidentifying a number of related downstream packets.

In some versions of this embodiment, the schedule packet may includeupdate times for update packets that are to be transmitted overdifferent digital broadcast channels.

In some versions of this embodiment, the schedule packet may includeinformation relating to a broadcast time for one or more other schedulepackets.

In some versions of this embodiment, the schedule packet may includeinformation relating to a duty cycle with which schedule packets arebroadcast.

BRIEF DESCRIPTION OF THE DRAWINGS

The teachings of the present invention can be readily understood byconsidering the following detailed description in conjunction with theaccompanying drawings, in which:

FIG. 1 is a schematic diagram illustrating a broadcast environment inwhich embodiments of the present invention may be employed.

FIG. 2 is a block diagram of an apparatus that implements scheduledupdating of digital broadcast data according to an embodiment of thepresent invention.

FIG. 3 is a flow diagram illustrating a method of scheduled updating ofdigital broadcast data according to an embodiment of the presentinvention.

FIGS. 4A-4B schematically illustrate an example of scheduled updating ofdigital broadcast data with a single tuner according to an embodiment ofthe present invention.

FIG. 4C schematically illustrates an example of scheduled updating ofdigital broadcast data with a multiple tuners according to an embodimentof the present invention.

FIG. 5 is block diagram of an input data stream that may be used inconjunction with scheduled updating of digital broadcast data accordingto an embodiment of the present invention.

FIG. 6 is a flow diagram illustrating an example of generating an updateschedule from multiple input data streams according to an embodiment ofthe present invention.

FIG. 7 illustrates a flow diagram illustrating an example oftransmitting schedule packets at varying duty cycles according to anembodiment of the present invention.

DESCRIPTION OF THE SPECIFIC EMBODIMENTS

Although the following detailed description contains many specificdetails for the purposes of illustration, anyone of ordinary skill inthe art will appreciate that many variations and alterations to thefollowing details are within the scope of the invention. Accordingly,examples of embodiments of the invention described below are set forthwithout any loss of generality to, and without imposing limitationsupon, the claimed invention.

Introduction

A digital television broadcast may be implemented in conjunction withmultiple services that utilize data broadcast on the same frequency orchannel as a conventional television broadcast. A broadcaster, such as atelevision station or television network, may bundle these services withits regular broadcast services. However, users of devices that receivethe digital broadcast signal may wish to receive digital servicesprovided by different broadcasters. For example a user may receivesports and weather updates from one broadcaster and stock updates fromanother broadcaster. If each broadcaster transmits over a differentchannel, the user must switch channels to receive updates for all threeservices. Consequently, in a digital broadcast environment, there is apreviously unrecognized need for a way to automatically tune the user'sdevice to different channels to receive updates for informationassociated with services on a user's device. Fulfilling such a needwould allow a single device to update assets and objects that arebroadcast on different channels.

FIG. 1 schematically illustrates a broadcast environment in whichembodiments of the present invention may be employed. In such anenvironment broadcasters 102 receive or generate input data streams 101.The input data streams 101 are converted to digital broadcast datastreams 103, which are converted to a digital broadcast signal 105 forreception by digital broadcast receivers 110. By way of example, adigital broadcast signal 105 may be a modulated radiation signaltransmitted from a broadcast tower 104, e.g., in the form of anover-the-air broadcast, such as by radiofrequency electromagnetic wavesignal. It is noted that the digital broadcast signal 105 transmitted bya given broadcast tower 104 may include multiple digital broadcastchannels modulated at different carrier signal frequencies. Broadcasttowers 104 associated with different broadcast units 102 may broadcastover different sets of frequencies. For example Broadcaster 1 maybroadcast over a first set of carrier frequencies f₁ . . . f_(m) andBroadcaster N may broadcast over a different set of carrier frequenciesf′₁ . . . f′_(j). There may be some overlap between the two sets ofcarrier frequencies.

Furthermore, the digital broadcast signal 105 may be transmitted in aform other than an over-the-air broadcast. Alternatively, embodiments ofthe invention may be used in conjunction with digital broadcaststransmitted over media such as cable (e.g., coaxial cable), opticalfiber, or satellite transmission.

By way of example, the digital broadcast signal 105 may be configured inaccordance with a digital broadcast standard. Examples of digitalbroadcast standards include, but are not limited to, the Digital VideoBroadcasting (DVB) family of standards maintained in Europe andAustralia, the Advanced Television Standards Committee (ATSC) family ofstandards developed for use in the United States and Canada, theIntegrated Services Digital Broadcasting (ISDB) family of standardsdeveloped for use in Japan, Digital Multimedia Broadcasting (DMB)standard used in South Korea.

The DVB family of standards includes the DVB-S and DVB-S2 standards forsatellite television, the DVB-T and DVB-T2 standards for terrestrialtelevision, DVC-C for cable television and DVB-H for mobile televisionand other DVB standards which have been or may be developed. The ATSCfamily of standards includes the ATSC standard for terrestrialtelevision broadcasts and the ATSC M/H standard for broadcasts to mobileand handheld devices. The ISDB family of standards includes the IDSB-S,ISDB-T, and ISDB-C standards, which were developed for satellite,terrestrial and cable television respectively.

By way of example, and not by way of limitation, the digital broadcastsignal 105 may be configured according to the ATSC or ATSC-M/Hstandards. The ATSC standard is described in detail, e.g., in “ATSCDigital Television Standard Part 1—Digital Television System” (A/53,Part 1:2007), “ATSC Digital Television Standard Part 2—RF/TransmissionSystem Characteristics” (A/53, Part 2:2007), and “ATSC DigitalTelevision Standard Part 3—Service Multiplex and Transport SubsystemCharacteristics” (A/53, Part 3, 2007), the disclosures of all three ofwhich are incorporated herein by reference. The ATSC Data BroadcastStandard is described, e.g., in (ATSC Recommended Practice:Implementation Guidelines for the ATSC Data Broadcast Standard (Doc.A/90)”, which is incorporated herein by reference.

The input data stream 101 may include data streams from multiplesources. For example, within the broadcaster 102 data streams fordifferent television program 107 may be made up of audio, video andancillary data streams. These data streams may be multiplexed to form aprogram data stream associated with a given program 107. Multipleprogram data streams may be multiplexed with each other into thebroadcast data stream 103. Furthermore, data service data streams 108for broadcast data services s₁ . . . s_(k) not specifically associatedwith a given program 107 may be overlaid (e.g., multiplexed) with theprogram data streams P₁ . . . P_(N) into the broadcast data stream 103.

The data streams 101 that make up digital broadcast data stream 103 maybe subject to data transforms, such as source coding and compression. Asused herein, “source coding and compression” refers to bit ratereduction methods, also known as data compression, appropriate forapplication to the video, audio, and ancillary digital data streams. Theterm “ancillary data” includes control data, conditional access controldata, and data associated with the program audio and video services,such as closed captioning. “Ancillary data” can also refer toindependent program services. The broadcast unit 102 may include a coderconfigured to minimize the number of bits needed to represent the audioand video information. If configured according to the ATSC standard, thebroadcast unit 102 may employ the MPEG-2 video stream syntax for thecoding of video and the Digital Audio Compression (AC-3) Standard forthe coding of audio.

The broadcast unit 102 may also subject the digital broadcast datastream 103 to service and multiplex transport operations. As usedherein, “service multiplex and transport” refers to the means ofdividing the digital data stream into “packets” of information, themeans of uniquely identifying each packet or packet type, and theappropriate methods of multiplexing video data stream packets, audiodata stream packets, and ancillary data stream packets into a singledata stream. By way of example, and not by way of limitation, digitalbroadcast unit 102 may employ the MPEG-2 transport stream syntax for thepacketization and multiplexing of video, audio, and data signals fordigital broadcasting systems. Such packetization and multiplexing isdescribed e.g., ISO/IEC 13818-1:2000 (E), International Standard,Information technology—Generic coding of moving pictures and associatedaudio information: systems”, which is incorporated herein by reference.

The digital broadcast data stream 103 may be converted to a digitalbroadcast signal 105 through processes referred to as channel coding andmodulation. The channel coder takes the data bit stream encoded in thedigital broadcast data stream 103 and adds additional information thatcan be used by a receiving device 110 to reconstruct the data from thereceived signal which, due to transmission impairments, may notaccurately represent the transmitted signal. A modulation subsystem (orphysical layer) uses the digital data stream information to modulate thetransmitted signal. By way of example and not by way of limitation, theATSC standard, the modulation subsystem offers two modes. Both modes arebased on vestigial sideband modulation. One mode is a terrestrialbroadcast mode known as 8-VSB. The other mode is a high data rate modeknown as 16-VSB.

A digital broadcast receiving device 110 receives the digital broadcastsignal 105 and extracts the digital broadcast data stream 103 encodedwithin the digital broadcast signal 105. By way of example, and not byway of limitation, the digital broadcast receiving device 110 mayinclude a digital receiver 111, a processor 114, a memory 115, a display117 and a data storage device 118. The digital broadcast receivingdevice 110 may be any type of device capable of receiving and utilizingthe digital broadcast signal 105. By way of example, the digitalbroadcast receiving device 110 may be a digital television set, digitalradio receiver, personal computer, laptop computer, a mobile or handhelddevice such as a cellular telephone, mobile internet device or mobiledigital television receiver.

Furthermore, the term digital broadcast receiving device encompasses“digital media receivers”, GPS devices, game consoles, portable gamedevices, home, mobile or device security systems, and any combinationthereof and including other devices for which the present invention maybe coupled to provide command and control.

The digital receiver 111 may include one or more tuners 112 and adecoder 113. The tuner(s) 112 may be coupled to an antenna 119 thatreceives the digital broadcast signal 105. The tuner 112 selects one ormore particular frequencies from among the various signals that arepicked up by the antenna 119. The tuner 112 and decoder 113 may extractdata and generate audio and video signals from the digital broadcastsignal 105. By way of example the tuner 112 and decoder 113 may providethe following functions: demodulation, transport stream demultiplexing,decompression, error correction, analog-to-digital conversion, AVsynchronization and media reformatting to fit the specific type ofdisplay 117 optimally.

As used herein, demodulation refers to the process of transforming thereceived digital broadcast signal 105 into a usable signal from whichdata may be extracted and/or from which quality images and sound may beproduced.

Transport Stream Demultiplexing may be implemented, e.g., where multipledigital signals are combined and then transmitted from one antennasource to create over the air broadcasts. In such a case, the decoder113 may decode the digital broadcast data stream 103 and convert it to asuitable form for display of a particular program of the audio and/orvideo components with the display 117 or for extraction of a broadcastservice data stream 108 from the digital broadcast data stream 103. Thedecoder 113 may implement decompression if the digital broadcast datastream 103 contains data in compressed form. The tuner 113 maydecompress such data, e.g., by unpacking compressed packets of digitaldata to their original size.

The decoder 113 may also implement Error Correction to make sure thatany data that is missing from the received digital broadcast signal 105can be corrected. For instance, sometimes interference or a poor-qualitysignal will cause the loss of data information that the tuner 112receives. In such cases, the decoder 112 may perform a number of checksand repair data so that a signal can be viewed on a TV set or data maybe utilized by the processor 114.

The decoder 113 may implement AV Synchronization to coordinate audio andvideo signals being displayed on the display 117 in proper time. AVsynchronization ensures that the audio does not lag behind the videothat is being displayed on the display 117 or vice versa, so that bothaudio and video are in sync. Media reformatting allows the display 117to properly display video images using the data extracted from thedigital broadcast signal. Media reformatting is important since theformatting of images on TV sets may differ significantly according tothe technology employed. For example, some televisions utilize aninterlaced picture, whereas others utilize a progressive-scan picture.

The display 117 may be any suitable video and/or audio display usablewith the digital broadcast signal 105. By way of example, and not by wayof limitation, the display 117 may include a video monitor, such as acathode ray tube (CRT), plasma display, liquid crystal display (LCD) ororganic light-emitting diode (OLED) display. In addition, the display117 may include one or more devices for generating audio, e.g., one ormore speakers.

The receiving device 110 may also implement a backchannel 120 thatallows information to be sent from the device to a broadcast unit 102 ora data center affiliated with the broadcast unit. The back channel 120may be implemented through a digital broadcast signal transmitted fromthe device 110, e.g., via the antenna 119. Alternatively, thebackchannel 120 may be implemented through some other mode ofcommunication such as wireless telephony (e.g., cellular), wirelessinternet, cable, optical fiber and the like.

The receiving device 110 may also include a data storage device 118 fornon-volatile storage of data. Examples of data storage devices includehard disk drives, flash memories, compact disk (CD) drives, digitalvideo disk (DVD) drives, tape drives, and the like.

The processor 114 may execute software program instructions thatfacilitate the above-referenced functions. In addition, the processor114 may execute program instructions SW1 . . . SW_(P) for variousdigital broadcast data services. Data for these data services may beupdated as part of the digital broadcast data stream 103 that is carriedby the digital broadcast signal 105. The program instructions SW₁ . . .SW_(p) may operate on corresponding data D₁ . . . D_(p) for thesebroadcast data services that is stored, e.g., in the memory 115.According to an embodiment of the present invention, the digitalbroadcast receiving device 110 may update the data D₁ . . . D_(p) fordigital broadcast data services that are broadcast over differentchannels according to a schedule. Any combination of subscriptions orservices may be updated according to the schedule.

Specifically, the processor 114 may execute instructions that implementa scheduler SCH that implements a method for updating data broadcastover different channels. A first digital broadcast signal 105 may bereceived over a first digital broadcast channel. The receiving device110 may be tuned to a second broadcast channel at a predetermined timeand a second digital broadcast signal 106 may be received over thesecond digital broadcast channel. The second broadcast signal 106includes data 108 associated with one or more services resident on thereceiving device 110. Selected data associated with one or more of thedata services may be extracted from the second digital broadcast signal106 and the data may be stored in or used by the receiving device 110.By way of example, the extracted data may be stored in the memory 115 orstorage device 118 for later use by one or more of the software programsSW₁ . . . SW_(p). The extracted data may replace portions of the data D₁. . . D_(p) for the broadcast data services. Alternatively, theextracted data may be utilized by the receiving device without storingit. For example, extracted data may be utilized by one or more of thedata service programs SW₁ . . . SW_(p) and then discarded.

It is noted that for the sake of example, the two digital broadcastsignals 105, 106 are shown as being transmitted from different towers104. This is not to be construed as a limitation upon any embodiment ofthe invention. Alternatively, the two digital broadcast signals mayoriginate from the same broadcast tower 104.

In some embodiments, the scheduler SCH may be turned off in order tosave power for the receiving device 110. This may be useful, e.g., ifthe device 110 relies on battery power, as in a mobile device. In otherembodiments, the data extracted from the digital broadcast signal 105may be stored in a buffer in the memory 115, while the receiver 111tunes one of the tuners 112 to other channels to receive data updatesuntil a certain amount of the buffer has been emptied. At that point thereceiver 111 may tune back to the first channel to receive a freshstream.

Information may be filtered from a geographic perspective based ondevice position information. To facilitate such functionality, thereceiving device 110 may optionally include a position location system116, such as a GPS receiver. For example, in the case of a mobile orhand-held device, GPS data may be used to filter weather and trafficupdates and only download those that are relevant to the area in whichthe device is presently located. In some embodiments, the function ofthe position location system 116 may be implemented by one of the tuners112 in conjunction with software running on the processor 114. Theposition location signal may originate from one or more of the towers104.

By way of example, a digital broadcast receiving device 200 shown inFIG. 2 may be configured to implement scheduled updating according to anembodiment of the present invention as shown in FIG. 1. By way ofexample, and without loss of generality, the receiving device 200 may beimplemented as part of a digital television set, personal computer,video game console, personal digital assistant, mobile or handhelddevice such as a cellular phone or personal digital assistant, portableemail device and the like, or other digital device. The device 200 mayinclude a central processing unit (CPU) 205 and a memory 206 coupled tothe CPU 205. The CPU 205 may be configured to run software applicationsand, optionally, an operating system. Some embodiments of the presentinvention may take advantage of certain types of processor architecturein which the CPU 205 includes a main processor 205A and one or moreauxiliary processors 205B. Each auxiliary processor may have its ownassociated local data storage. One example, among others of such aprocessor architecture is a Cell Processor. An example of a CellProcessor architecture is described in detail, e.g., in Cell BroadbandEngine Architecture, copyright International Business MachinesCorporation, Sony Computer Entertainment Incorporated, ToshibaCorporation Aug. 8, 2005 a copy of which may be downloaded athttp://cell.scei.co.jp/, the entire contents of which are incorporatedherein by reference.

The memory 206 may store applications and data for use by the CPU 205.The memory 206 may be in the form of an integrated circuit, e.g., RAM,DRAM, ROM, and the like). A computer program 201 may be stored in thememory 206 in the form of instructions that can be executed on theprocessor 205. The instructions of the program 201 may be configured toimplement, amongst other things, an update scheduler having certainfeatures described below.

The update scheduler program 201 may facilitate updating of data fordigital broadcast data services that are resident on the device 200. Byway of example, and not by way of limitation, the memory 206 may containservice data 203 and/or programs usable in conjunction with suchservices. Examples of such services include, but are not limited tostock quotes 204, weather 207, traffic 208 and sports 209. Examples ofstock quote service data 204 include, but are not limited to, prices ofstocks. Examples of weather service data 207 include, but are notlimited to, the text of weather forecasts. Examples of traffic servicedata 208 include local traffic conditions, notices of road closures orhazards and the like. Examples of sports data 209 include, but are notlimited to, scores, statistics and standings.

By way of example, the update scheduler program 201 may includeinstructions to update the service data 203 in memory 206 with databroadcast over different channels. A first broadcast stream may bereceived over a first digital broadcast channel. The receiving device200 may be tuned to a second broadcast channel at a predetermined timeand a second broadcast stream may be received over the second digitalbroadcast channel. Selected data associated with one or more of theservices may be extracted from the second digital broadcast signal andthe data may be stored or utilized with the receiving device.

The receiving device 200 may also include well-known support functions210, such as input/output (I/O) elements 211, power supplies (P/S) 112,a clock (CLK) 213 and cache 214. The device 200 may further include afast data storage device 215 such as a hard disk drive that providesnon-volatile storage for applications and data. The fast storage device215 may be used for temporary or long-term storage of files 216retrieved from a slower data storage device 220. By way of example, thestorage device 215 may be a fixed disk drive, removable disk drive,flash memory device, tape drive. The slower storage device 220 may be,e.g., a CD-ROM, DVD-ROM, Blu-ray, HD-DVD, UMD, or other optical storagedevices. Files 216 from the slower storage device 220 may be temporarilystored in the storage device 215 in a hardware cache for quick loadinginto the memory 206.

The device 200 may include a digital broadcast receiver 240 which may becoupled to an antenna 241. One or more digital broadcast tuners 242 mayreceive digital broadcast signals picked up by the antenna 241. Thereceiver 240 may further include a decoder 244, which may implement thefunctions described above.

One or more user input devices 222 may be used to communicate userinputs from one or more users to the system 200. By way of example, oneor more of the user input devices 222 may be coupled to the clientdevice 200 via the I/O elements 211. Examples of suitable input device222 include keyboards, mice, joysticks, touch pads, touch screens, lightpens, still or video cameras, and/or microphones. The client device 200may include a network interface 225 to facilitate communication via anelectronic communications network 227. The network interface 225 may beconfigured to implement wired or wireless communication over local areanetworks and wide area networks such as the Internet. The system 200 maysend and receive data and/or requests for files via one or more messagepackets 226 over the network 227.

The system 200 may further comprise a graphics subsystem 230, which mayinclude a graphics processing unit (GPU) 235 and graphics memory 239.The graphics memory 239 may include a display memory (e.g., a framebuffer) used for storing pixel data for each pixel of an output image.The graphics memory 239 may be integrated in the same device as the GPU235, connected as a separate device with GPU 235, and/or implementedwithin the memory 206. Pixel data may be provided to the graphics memory239 directly from the CPU 205. Alternatively, the graphics unit mayreceive video signal data extracted from a digital broadcast signal fromthe decoder 244. Alternatively, the CPU 205 may provide the GPU 235 withdata and/or instructions defining the desired output images, from whichthe GPU 235 may generate the pixel data of one or more output images.The data and/or instructions defining the desired output images may bestored in memory 206 and/or graphics memory 239. In an embodiment, theGPU 235 may be configured (e.g., by suitable programming or hardwareconfiguration) with 3D rendering capabilities for generating pixel datafor output images from instructions and data defining the geometry,lighting, shading, texturing, motion, and/or camera parameters for ascene. The GPU 235 may further include one or more programmableexecution units capable of executing shader programs.

The graphics subsystem 230 may periodically output pixel data for animage from the graphics memory 239 to be displayed on a video displaydevice 250. The video display device 250 may be any device capable ofdisplaying visual information in response to a signal from the device200, including CRT, LCD, plasma, and OLED displays that can displaytext, numerals, graphical symbols or images. The digital broadcastreceiving device 200 may provide the display device 250 with a displaydriving signal in analog or digital form, depending on the type ofdisplay device. In addition, the display 250 may include one or moreaudio speakers that produce audible or otherwise detectable sounds. Tofacilitate generation of such sounds, the client device 200 may furtherinclude an audio processor 255 adapted to generate analog or digitalaudio output from instructions and/or data provided by the CPU 205,memory 206, and/or storage devices 215, 220.

The receiving device 200 may optionally include a position locationdevice 270. Such a device may be based on any suitable technologycapable of providing information on the geographic location of a device.Examples of existing technology include global positioning satellite(GPS) technology, inertial guidance technology, and the like.Information from such devices may be used in digital broadcast dataapplications such as navigation for mobile or hand-held devices.

The components of the device 200, including the CPU 205, memory 206,support functions 210, data storage devices 215, 220 user input devices222, network interface 225, graphics unit 230, audio processor 255 andposition location device 270 may be operably connected to each other viaone or more data buses 260. These components may be implemented inhardware, software or firmware or some combination of two or more ofthese.

By way of example, and not by way of limitation, the update schedulerprogram 201 may update the data for digital broadcast services that arebroadcast over different channels in accordance with a method 300depicted in the flow diagram of FIG. 3. As indicated at 302 a firstbroadcast stream is received over a first digital broadcast channel. Thereceiving device 200 is tuned to a second digital broadcast channel at apredetermined time as indicated at 304. The first broadcast stream mayinclude digital television programming mixed with overlaid data. Theoverlaid data may be associated with the first digital broadcast channelor with another digital broadcast channel. There are a number of ways inwhich data may be overlaid with digital television programming. Forexample, data packets may be interleaved into a digital televisionbroadcast stream. Such a scheme is sometimes referred to as timedivision multiplexing (TDM). In this scheme two or more signals or bitstreams are transferred apparently simultaneously as sub-channels in onecommunication channel. In reality the two bit streams are physicallytaking turns on the channel. In TDM, the time domain may be divided intoseveral recurrent timeslots of fixed length, one for each sub-channel. Asample, byte or data block of each sub-channel may be transmitted duringits corresponding timeslot, e.g., sub-channel 1 during timeslot 1;sub-channel 2 during timeslot 2, etc.

A second broadcast stream is then received over the second digitalbroadcast channel, as indicated at 306. The second broadcast streamincludes data associated with one or more services resident on thereceiving device 200. Data associated with one or more of these servicesmay be extracted from the second broadcast stream as indicated at 308.As used herein the term “extracted” in this context refers to theprocess of demodulating the signal carrying the second broadcast streamand decoding it into data that can be read and manipulated by theprocessor. Extracting the data from the broadcast stream may alsoinclude the process of separating data relevant to specific servicesfrom amongst the data decoded from the digital broadcast signal.

Once the relevant data has been extracted it may be stored in orutilizing by the receiving device 200 as indicated at 310. By way ofexample, the relevant data may be stored in the memory for later use bythe service programs. Alternatively, the service programs may makeimmediate use of the relevant data and then either store or discard thedata. In some embodiments of the present invention, updates for certainbroadcast data services 203 may have different priorities. In suchcases, the update scheduler 201 may be configured to select the channelfor such updates based on an update priority schedule UPS for thebroadcast data services 203. The update priority schedule UPS may bestored in the memory 206.

There are a number of different ways in which the receiving device mayscheduled updates may be implemented. There are a number of differentways in which the scheduler 201 may determine the predetermined time forswitching channels in order to receive updates. In some embodiments, theupdate scheduler 201 may determine a predetermined time for switchingfrom one channel to another from data embedded in the digital broadcastsignal to which the receiver 240 is currently tuned. By way of example,and not by way of limitation, data may be embedded in the broadcastsignal indicating the time of a relevant data gap in a stream ofprogramming packets in the digital broadcast signal. The scheduler 201may utilize such data to select the predetermined time for changingchannels to coincide with the data gap.

For example, as shown in FIGS. 4A-4B, a single tuner 242 may update datareceived over multiple channels where data and digital televisionprogramming a time division multiplexed. As shown in FIG. 4A, first andsecond digital data streams are transmitted over first and secondchannels CH1 and CH2. The data stream on the first channel CH1 containsdigital television programming data PR1 that is time divisionmultiplexed in the data stream with other data. The other data may be inthe form of programming for a different sub-channel or data for adigital broadcast data service. The data stream on the second channelCH2 includes data for a digital broadcast data service D1 that is timedivision multiplexed with other data. The other data on the secondchannel CH2 may be data for other digital broadcast services or digitaltelevision programming for one or more sub-channels of the secondchannel CH2.

Initially, the single tuner 242 is tuned to the first channel CH1, asshown in FIG. 4A. After the decoder 244 decodes the program data PR1from the first channel's data stream the decoded data may be useddirectly for display on the display device 250 or may be stored in thememory 206, e.g., in a buffer for later display.

If the data stream on the first channel CH1 is time divisionalmultiplexed there may be gaps in the data stream during which the device200 may receive no relevant broadcast program or other data. Forexample, suppose the user of the device 200 is watching a certainprogram on a certain sub-channel of the first channel CH1. If the timedivision multiplexing is done on a schedule, there may be intervals oftime during which data other programming is transmitted over othersub-channels of the first channel CH1. The decoder 244 may ignore thisdata if the device 200 is not configured to receive them. During suchintervals, the update scheduler 201 may direct the tuner 242 to switchto the second channel CH2 to receive updates for digital broadcast dataservice D1 as shown in FIG. 4B. The data may be decoded from the datastream by the decoder 244 and displayed on the display 250 or stored ina data buffer for later use or display. The update scheduler may thendirect the tuner 242 to switch back to the first channel CH1 to receiveprogramming data PR1 during the next time slot for such data.

Gaps in buffered programming data PR1 or digital service data D1 storedin the memory 206 may be filled, e.g., through forward error correction.Forward error correction (FEC) refers to a system of error control fordata transmission, whereby the sender adds redundant data to itsmessages, also known as an error correction code. This allows thereceiver to detect and correct errors (within some bound) without theneed to ask the sender for additional data. The advantage of forwarderror correction is that a back-channel is not required, or thatretransmission of data can often be avoided, at the cost of higherbandwidth requirements on average.

As an alternative to FEC, the update scheduler 201 may be configured toidentify one or more missing data packets from the second broadcaststream that were not received as part of an update. Such packets may beidentified, e.g., if each packet contains a sequential identifier andthe scheduler 201 determines from these identifiers that one or morepackets were not received. The scheduler 201 may then invoke a routinefor retrieving the one or more missing data packets, e.g., bydownloading them through a back channel, such as the network 227.

Embodiments of the present invention may also be implemented on receiverdevices having a two or more tuners. For example, as shown in FIG. 4C,the receiving device 200 may include a first tuner 242A and a secondtuner 242B. In such a case, the first tuner 242A may be tuned to thefirst digital broadcast channel CH1 and the second tuner 242B may beselectively tuned to another digital broadcast channel (e.g., CH2 orCH3) at the predetermined time. A digital broadcast signal from theother channel may be received with the second tuner 242B and the digitalbroadcast signal from the first channel CH1 may be received with thefirst tuner 242A.

According to certain embodiments, it may be useful to determine ageographic location of the receiving device. Certain digital broadcastservices, such as weather and traffic information are local in nature.By way of example and not by way of limitation, a user of a digitalreceiving device located in, say, a particular locale within the LosAngeles metropolitan area would likely be interested in trafficinformation for that locale. If such a user is traveling to adestination in a different locale, the user might also be interested intraffic conditions in the vicinity of the destination and along theroute to the destination. The digital broadcast signal may includetraffic information for several different locales within the Los Anglesarea. In such a case it may be useful to filter out the trafficinformation most relevant to the user of the receiving device. Tofacilitate such filtering, the position locating device 270 may providegeographic location information that may be used to filterlocation-specific relevant information from the digital broadcastsignal. Furthermore, in accordance with certain embodiments of thepresent invention, the scheduler 201 may select the digital broadcastchannel to which to tune for particular data updates (e.g., traffic orweather data updates) based on the geographic location of the receivingdevice as determined by the position locating device 270.

By way of example, and not by way of limitation, the digital broadcastsignal may include traffic data update packets that include in theirheaders information identifying a region for which the information isrelevant. The update scheduler 201 may extract the information fromthese headers and use such information to determine whether to store,use or discard the information in the packet. For example, a packetheader for a packet containing traffic information may identify theinformation as being relevant to Northridge. Information obtained by theposition locating device 270 may indicate that the device is located inNorthridge, heading to Northridge or traveling on a route throughNorthridge. Based on this information, the scheduler 201 may choose tostore or utilize the information. Similarly, if the packet headerindicates that the information is for some irrelevant region, e.g., onewhere the device is not located, going to, or scheduled to travelthrough, the scheduler 201 may be configured to ignore the packet.

In some embodiments, the update scheduler 201 may determine a switchingscheme or schedule for updating data from different channels usingschedule data received as part of a digital broadcast signal. By way ofexample, and not by way of limitation, FIG. 5 depicts a data stream 500that may be used in conjunction with scheduled updating of digitalbroadcast data according to an embodiment of the present invention. Thedata stream 500 (e.g., an input data stream 101 or digital broadcastdata stream 103) may include a plurality of data packets 502, 504, 506.Each packet may include a header H1, H2, H3 and a payload P1, P2, P3.The headers H1, H2, H3 for the packets 502, 504, 506 may includeinformation regarding the data in the corresponding payloads P1, P2, P3.Such information may include, but is not limited to, a channelidentifier, a data type, an optional packet, information identifying anumber of related packets, and a packet identifier.

The packet headers H1, H2, H3 may also indicate one or more of thefollowing: a frequency of a broadcast burst, a total number of groups ofbursts that make up a complete update for a service, a time start signalin which a broadcast or service or burst or complete update for aservice will occur, a channel, or frequency of the transmission, asub-channel associated with the packet, a URL associated with thebroadcast, service or transmission, and any combination thereof andincluding that which may be coupled to an application or operatingsystem and prompting the application or operating system to take anaction in response thereto.

The channel identifier may identify the particular channel (or channels)over which the packet is to be broadcast. The sub-channel identifier mayidentify the particular sub-channel within a channel for a service withwhich the packet is associated. The data type may identify theparticular data service or data type for the data in the payload. Thepacket size may specify a size of the data contained in the payload. Thepacket identifier and information identifying a number of relatedpackets may be used to facilitate reconstruction of a block data sentover the course of multiple packets. For example, the packet identifiermay uniquely identify a packet as being part of a particular group ofpackets and the information identifying a number of related packets mayindicate that this particular packet is the fifth packet in the group.In some versions, information identifying related packets may includeinformation identifying a number of related downstream packets (i.e.,packets to be broadcast later).

FIG. 6 illustrates an example of how an update schedule may be generatedfrom multiple input data streams. As seen in FIG. 6, an input datastream 601 for a digital broadcast signal may contain input streams formultiple digital broadcast channels C1, C2, C3. In this example, eachchannel C1, C2, C3 is broadcast over a different carrier frequency. Thedigital broadcast signals for the channels C1, C2, C3 may be broadcastmore or less simultaneously by a transmitter 606 using frequencydivision multiplexing. Individual data streams for different programmingand digital data services within the within each channel may bemultiplexed using time division multiplexing. The data streams for eachchannel are made up of packets 603, having a payload P1 . . . P9 andcorresponding headers H1 . . . H9. As discussed above, each header mayidentify the type of data in the packet. In particular the headers mayidentify whether a packet is associated with television programming or adata service. If a packet is associated with a data service, the headerfor that packet may identify the specific data service. The headers ofall the packets in the input data stream 601 may be analyzed by anupdate schedule generator 602 to determine which packets contain updatesfor data services. Furthermore, the update schedule generator 602 maydetermine a time of broadcast for each of the packets 603. For example,the update schedule generator may receive the packets in the order inwhich they are to be broadcast. From this broadcast order, the updateschedule generator may determine the time at which a given packet is tobe broadcast. In the example depicted in FIG. 6, the packets havingpayloads P1, P4, and P7 are to be broadcast at time T1, the packetshaving payloads P2, P5, and P8 are to be broadcast at time T2, and thepackets having payloads P3, P6, and P9 are to be broadcast at time T3.

The update schedule generator 602 may combine the information from thepacket headers and the transmission times to generate an update one ormore schedule packets 604. These packets may contain informationindicating the time of broadcast of update packets. By way of example,suppose that the packet payloads P1, P6 and P9 in the input data stream601 contain update for digital broadcast data services. The updateschedule generator 602 may determine this from information in theheaders H1, H6, and H9. From the order of the packets in the in datastream 601 the update schedule generator 602 may determine that thepacket containing payload P1 is to be broadcast over channel C1 at timeT1 and the packets containing payloads P6 and P9 are to be broadcastover channels C2 and C3 respectively at time T3. The update schedulegenerator 602 may combine this information into the update schedulepacket 604 along other information included in the packet headers, asdescribed above. For the sake of example, the update schedule is shownin the form of a table. An “X” in the table indicates that an update isscheduled to be broadcast over a particular channel at a particulartime. Blank spaces in the table indicate that no update is scheduled fora given channel at a given time. Spaces in the table marked with an “X”may include additional information relating to the update, e.g.,obtained from the header of the corresponding update packet. Thisparticular configuration is not meant as a limitation upon theinvention. The update schedule packets 604 may be inserted into thedigital broadcast signals for channels C1, C2 and C3 and transmitted bythe transmitter 606 before the corresponding update packets containingpayloads P1, P6 and P9 are broadcast. In this way a receiving device mayreceive an update schedule packet independent of whether it is tuned toany particular one of the channels C1, C2 or C3. A given update schedulepacket 604 may be broadcast multiple times over a given channel toincrease the chance that a receiving device will receive it in time toimplement channel switching to receive a relevant update packet.

In some situations, it may be desirable to repeatedly broadcast theupdate schedule packets 604 at a regular duty cycle to increase thelikelihood that they will be received in a timely manner. In addition,the number of data packets broadcast between update schedule packets andthe times at which the update schedule packets are broadcast may alsovary. As seen in FIG. 6, the update schedule packets may includeinformation identifying the duty cycle with which update schedulepackets are broadcast. For example, update schedule packets SP may bebroadcast along with data packets P1 . . . P11. Initially, the updateschedule packets SP may be broadcast at a duty cycle d₁ of one updateschedule packet followed by three data packets. The update schedulepackets SP may identify that a subsequent schedule packets will bebroadcast at a new duty cycle d₂ of one update schedule packet followedby two data packets. The update scheduler 201 may take such updateschedule packet duty cycle changes into account when determining when tohop between channels.

In some embodiments, the update schedule packet scheme described abovemay be utilized to synchronize services on different sub-channels withina given digital broadcast channel transmitted over a given frequency.For example, as depicted in FIG. 7, update schedule packets SP mayinclude information relating to different sub-channels with a digitalbroadcast stream may be time multiplexed. Services on differentsub-channels may be used by different applications within the receivingdevice 200. The update schedule program 201 may make use of sub-channelupdate information from the update schedule packets to efficientlyallocate computational resources within the device 200.

Embodiments of the present invention allow for efficient updating ofdata services received in conjunction with a digital broadcast signal.Data services may be updated while a device is presenting digitaltelevision programming so that a user has timely access to relevantdata.

While the above is a complete description of the preferred embodiment ofthe present invention, it is possible to use various alternatives,modifications and equivalents. Therefore, the scope of the presentinvention should be determined not with reference to the abovedescription but should, instead, be determined with reference to theappended claims, along with their full scope of equivalents. Any featuredescribed herein, whether preferred or not, may be combined with anyother feature described herein, whether preferred or not. In the claimsthat follow, the indefinite article “A”, or “An” refers to a quantity ofone or more of the item following the article, except where expresslystated otherwise. The appended claims are not to be interpreted asincluding means-plus-function limitations, unless such a limitation isexplicitly recited in a given claim using the phrase “means for”.

What is claimed is:
 1. A method for generating an update schedule fordata transmitted with a digital broadcast signal, comprising: a)receiving one or more input data streams containing data for one or moredigital broadcast data services, wherein the data is in the form of aplurality of packets, each packet having a header and a payload, whereinthe header includes information identifying a broadcast channel and anumber of related downstream packets; b) determining from the headers ofthe plurality of packets a time that an update packet containing datafor one of the digital broadcast data services will be broadcast as partof the digital broadcast signal; c) generating a schedule packetcontaining the time that the update packet will be broadcast as part ofthe digital broadcast signal; and d) broadcasting the schedule packetbefore broadcasting the update packet as part of the digital broadcastsignal.
 2. The method of claim 1, wherein the header includesinformation identifying a channel over which the packet associated withthe header is to be broadcast.
 3. The method of claim 1, wherein theheader includes information identifying a type of data in the payload.4. The method of claim 1 wherein the header includes informationidentifying a size of the packet.
 5. The method of claim 1 wherein theheader includes information identifying a given packet as beingassociated with other packets in the digital broadcast signal.
 6. Themethod of claim 1 wherein the schedule packet includes update times forupdate packets that are to be transmitted over different digitalbroadcast channels.
 7. The method of claim 1 wherein the schedule packetincludes information relating to a broadcast time for one or more otherschedule packets.
 8. The method of claim 1 wherein the schedule packetincludes information relating to a duty cycle with which schedulepackets are broadcast.